package com.fintech.datagroud.service;


import java.util.List;

import com.fintech.datagroud.entity.bairong.EdcBrRuleResult;
import com.fintech.datagroud.entity.bairong.EdcBrRuleResultDetail;
import com.fintech.datagroud.entity.wechat.EdcWxBrRuleResult;
import com.fintech.datagroud.entity.wechat.EdcWxBrRuleResultDetail;
import com.fintech.third.model.EquipmentInfor;
import com.fintech.third.model.bairong.AntiFraudRuleInfoAssociate;
import com.fintech.third.model.bairong.ApplicationInfoAssociate;
import com.fintech.third.model.bairong.CreditRiskEvaluation;
import com.fintech.third.model.bairong.CurrentEquipmentInformationReport;
import com.fintech.third.model.bairong.EquipmentInfo;
import com.fintech.third.model.bairong.EquipmentSpecialList;
import com.fintech.third.model.bairong.IncomeMonthLevel;
import com.fintech.third.model.bairong.LoanFacilityInformation;
import com.fintech.third.model.bairong.LoginFacilityInformation;
import com.fintech.third.model.bairong.MultipleApplications;
import com.fintech.third.model.bairong.OccApplyLoanInfo;
import com.fintech.third.model.bairong.PaymentConsum;
import com.fintech.third.model.bairong.RegisterFacilityInformation;
import com.fintech.third.model.bairong.RuleInformation;
import com.fintech.third.model.bairong.Score;
import com.fintech.third.model.bairong.SpecialList;
import com.fintech.third.model.bairong.Stability;


public interface DGBaiRongService {
	
	/**
	 * 百融规则
	 * @param RuleInformation
	 * @return
	 */
	public boolean ruleReport(RuleInformation ruleInformation,String tokenId,String br_loan_id)throws Exception;
	
	/**
	 * 特殊名单核查
	 * 
	 * @param SpecialList
	 * @return
	 */
	public boolean specialListReport(SpecialList specialList,String tokenId,String br_loan_id)throws Exception;
	
	
	/**
	 * 多次申请核查v2(用户近7/15天、1/3/6个月在百融的虚拟信贷联盟(银行、非银、非银细分类型)中的多次信贷申请情况)
	 * 
	 * @param MultipleApplications
	 * @return
	 */
	public boolean multipleApplicationsReport(MultipleApplications multipleApplications,String tokenId,String br_loan_id) throws Exception;
	
	
	/**
	 * 稳定性评估
	 * 
	 * @param Stability
	 * @return
	 */
	public boolean stabilityReport(Stability stability,String tokenId,String br_loan_id) throws Exception;
	
	
	/**
	 * 月度收支等级评估
	 * 
	 * @param IncomeMonthLevel
	 * @return
	 */
	public boolean incomeMonthLevelReport(IncomeMonthLevel incomeMonthLevel,String tokenId,String br_loan_id) throws Exception; 
	
	/**
	 * 百融评分（非银消费贷线下评分V2.0,非银小额线上现金贷客群评分）
	 * @param score
	 * @return
	 */
	public boolean scoreReport(Score score, String tokenId,String br_loan_id) throws Exception;
	
	
	/**
	 * 多次申请核查(用户近3个月、6个月、12个月在百融的虚拟信贷联盟(银行、非银)中的多次信贷申请情况)
	 * 
	 * @param occApplyLoanInfo
	 * @return
	 */
	public boolean  occApplyLoan(OccApplyLoanInfo occApplyLoanInfo,String tokenId,String br_loan_id)throws Exception;
	
	/**
	 * 支付消费评估(支付消费评估产品查询用户银行卡消费情况的统计评估，展示近12个月（自然月）支付行为情况（建议用户填其常用卡）)
	 * @param paymentConsum
	 * @return
	 */
	public boolean  occPaymentConsumReport(PaymentConsum paymentConsum,String tokenId,String br_loan_id)throws Exception;
	
	/**
	 * 设备信息核查
	 * @param paymentConsum
	 * @return
	 */
	public boolean  equipmentInformationVerification(EquipmentInfor equipmentInfor,String tokenId,String br_loan_id,String foreignId,String mobile)throws Exception;
	
	/**
	 * 设备采集信息
	 * @param paymentConsum
	 * @return
	 */
	public boolean  equipmentInfo(EquipmentInfo equipmentInfo,String tokenId,String br_loan_id,String foreignId,String mobile)throws Exception;
	
	/**
	 * 设备特殊名单
	 * @param paymentConsum
	 * @return
	 */
	public boolean  equipmentSpecialListInfo(EquipmentSpecialList equipmentSpecialList,String tokenId,String br_loan_id,String foreignId,String mobile)throws Exception;
	
	/**
	 * 借款设备信息
	 * @param paymentConsum
	 * @return
	 */
	public long  loanFacilityInformationReport(LoanFacilityInformation loanFacilityInformation,String tokenId,String br_loan_id,String mobile)throws Exception;
	
	/**
	 * 注册设备信息
	 * @param paymentConsum
	 * @return
	 */
	public long  registerFacilityInformationReport(RegisterFacilityInformation registerFacilityInformation,String tokenId,String br_loan_id,String mobile)throws Exception;
	
	/**
	 * 登录设备信息
	 * @param paymentConsum
	 * @return
	 */
	public long  loginFacilityInformationReport(LoginFacilityInformation loginFacilityInformation,String tokenId,String br_loan_id,String mobile)throws Exception;
	
	/**
	 * 提现设备信息
	 * @param paymentConsum
	 * @return
	 */
	public boolean  cashFacilityInformationReport(CurrentEquipmentInformationReport currentEquipmentInformationReport,String tokenId,String br_loan_id,String mobile)throws Exception;
	
	
	/**
	 * 申请信息关联
	 * @param paymentConsum
	 * @return
	 */
	public boolean  applicationInfoAssociate(ApplicationInfoAssociate applicationInfoAssociate,String tokenId,String br_loan_id)throws Exception;
	
	
	
	/**
	 * 反欺诈规则—申请信息关联
	 * @param paymentConsum
	 * @return
	 */
	public boolean  antiFraudRuleInfoAssociate(AntiFraudRuleInfoAssociate antiFraudRuleInfoAssociate,String tokenId,String br_loan_id)throws Exception;
	
	
	
	
	/**
	 * 百融规则结果
	 * @param edcBrRuleResult
	 * @return
	 * @throws Exception
	 */
	public long  ruleResult(EdcBrRuleResult edcBrRuleResult)throws Exception;
	
	
	/**
	 * 百融规则结果详情
	 * @param edcBrRuleResultDetail
	 * @return
	 * @throws Exception
	 */
	public boolean  ruleResult(List<EdcBrRuleResultDetail> list)throws Exception;
	
	
	/**
	 * 百融信用风险识别入库
	 * @param creditRiskEvaluation
	 * @param tokenId
	 * @param br_loan_id
	 * @return
	 * @throws Exception
	 */
	public boolean insertCreditRiskEvaluation(CreditRiskEvaluation creditRiskEvaluation, String tokenId,String br_loan_id)throws Exception;

	/**
	 * 多次申请核查v2(用户近7/15天、1/3/6个月在百融的虚拟信贷联盟(银行、非银、非银细分类型)中的多次信贷申请情况)
	 * 微信小程序调用
	 * @param MultipleApplications
	 * @return
	 * @param mobile
	 */
	public boolean wxMultipleApplicationsReport(MultipleApplications multipleApplications, String serialNum,String mobile)throws Exception;

	/**
	 * 申请信息关联
	 * 微信小程序调用
	 * @param paymentConsum
	 * @return
	 */
	public boolean wxApplicationInfoAssociate(ApplicationInfoAssociate applicationInfoAssociate, String serialNum,String mobile)throws Exception;

	/**
	 * 百融规则结果
	 * 微信小程序调用
	 * @param edcBrRuleResult
	 * @return
	 * @throws Exception
	 */
	public long wxRuleResult(EdcWxBrRuleResult edcWxBrRuleResult)throws Exception;

	/**
	 * 百融规则结果详情
	 * 微信小程序调用
	 * @param edcBrRuleResultDetail
	 * @return
	 * @throws Exception
	 */
	public boolean wxRuleResult(List<EdcWxBrRuleResultDetail> list)throws Exception;
}
